package com.cargohu.aishouyu.system.service;

import com.cargohu.aishouyu.framework.page.Paging;
import com.cargohu.aishouyu.framework.service.BaseService;
import com.cargohu.aishouyu.system.dto.SysConfigAddDTO;
import com.cargohu.aishouyu.system.dto.SysConfigUpdateDTO;
import com.cargohu.aishouyu.system.entity.SysConfig;
import com.cargohu.aishouyu.system.query.SysConfigQuery;
import com.cargohu.aishouyu.system.vo.SysConfigVo;

/**
 * 参数配置表 服务接口
 *
 * @author yww
 * @since 2023-11-29
 */
public interface SysConfigService extends BaseService<SysConfig> {

    /**
     * 添加参数配置表
     *
     * @param sysConfigAddDTO
     * @return
     * @throws Exception
     */
    boolean addSysConfig(SysConfigAddDTO sysConfigAddDTO) throws Exception;

    /**
     * 修改参数配置表
     *
     * @param sysConfigUpdateDTO
     * @return
     * @throws Exception
     */
    boolean updateSysConfig(SysConfigUpdateDTO sysConfigUpdateDTO) throws Exception;

    /**
     * 删除参数配置表
     *
     * @param configId
     * @return
     * @throws Exception
     */
    boolean deleteSysConfig(Long configId) throws Exception;

    /**
     * 参数配置表详情
     *
     * @param configId
     * @return
     * @throws Exception
     */
    SysConfigVo getSysConfigById(Long configId) throws Exception;

    /**
     * 参数配置表详情
     *
     * @param configKey
     * @return
     * @throws Exception
     */
    SysConfigVo getSysConfigByKey(String configKey) throws Exception;

    /**
     * 参数配置表分页列表
     *
     * @param sysConfigQuery
     * @return
     * @throws Exception
     */
    Paging<SysConfigVo> getSysConfigList(SysConfigQuery sysConfigQuery) throws Exception;

}
